home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / lib / cryptsetup / scripts / decrypt_openct < prev    next >
Text File  |  2009-10-14  |  2KB  |  66 lines

  1. #!/bin/sh
  2.  
  3. #check_reader() {
  4. #    readerfound=0
  5. #
  6. #    readertmp=$(/usr/bin/openct-tool list 2>&1)
  7. #    if [ $? = 0 ] ; then
  8. #        readerfound=1
  9. #    fi
  10. #}
  11.  
  12. wait_reader() {
  13. #    check_reader
  14.     echo "Waiting for Smart Card reader..." >&2
  15.     /usr/bin/openct-tool rwait >/dev/null 2>&1
  16.     if [ $? != 0 ]; then
  17.         echo 'Failed to find Smart Card reader!' >&2
  18.     fi
  19. #    if [ $readerfound = 0 ] ; then
  20. #        tries=0
  21. #        while [ $readerfound == 0 -a $tries -lt 60 ] ; do
  22. #            echo "Waiting for Smart Card reader..." >&2
  23. #            sleep 1
  24. #            check_reader
  25. #            tries=$(($tries + 1))
  26. #        done
  27. #        if [ $readerfound = 0 ] ; then
  28. #            echo 'Failed to find Smart Card reader!' >&2
  29. #            exit 1
  30. #        fi
  31. #    fi
  32. }
  33.  
  34. wait_card() {
  35.     echo "Waiting for Smart Card..." >&2
  36.     /usr/bin/openct-tool wait >/dev/null 2>&1
  37.     if [ $? != 0 ]; then
  38.         echo 'Failed to find Smart Card!' >&2
  39.     fi
  40. }
  41.  
  42. /usr/sbin/openct-control init
  43. wait_reader
  44. wait_card
  45.  
  46. # Due to a bug in openct, the --label does not work on data objects, means,
  47. # all data objects have by default the label 'pkcs15-init', that's why we are
  48. # setting the label manually if none is configured by the user.
  49.  
  50. if [ -z "$1" ] || [ "$1" = "none" ] ; then
  51.     LABEL="pkcs15-init"
  52. else
  53.     LABEL="$1"
  54. fi
  55.  
  56. if [ -p /dev/.initramfs/usplash_outfifo ] && [ -x /sbin/usplash_write ]; then
  57.     # Get pin number from usplash
  58.     /sbin/usplash_write "INPUTQUIET Enter pin for $crypttarget ($cryptsource): "
  59.     /usr/bin/pkcs15-tool --read-data-object $LABEL --pin "$(cat /dev/.initramfs/usplash_outfifo)" -o /proc/self/fd/3 3>&1 1>/dev/null 2>&1
  60. else
  61.     # Interactive call, user enters pin
  62.     /usr/bin/pkcs15-tool --read-data-object $LABEL -o /proc/self/fd/3 3>&1 1>/dev/null 2>&1
  63. fi
  64.  
  65. exit $?
  66.